home *** CD-ROM | disk | FTP | other *** search
- Short: TCP Data broadcast system (library & server)
- Type: comm/net
- Author: jfriesne@ucsd.edu (Jeremy Friesner)
- Uploader: jfriesne@ucsd.edu (Jeremy Friesner)
- Requires: Workbench 2.04+, Inet225 or AmiTCP3.0b+ or compatible TCP stack
- Replaces: comm/net/AMarquee1.46.lha
- Version: 1.47
-
- ----------------------------------------------------------------
-
- AMARQUEE v1.47
-
- (Released 2/20/97)
-
- ----------------------------------------------------------------
-
-
- The Problem:
-
- You have a great idea for a killer multi-player Internet game
- or multi-user net app, but it's a total pain in the @)#$* to
- write all the TCP connection and data synchronization code
- you'll need to get it going. So you put your idea on the
- back-burner and go play "Lemmings" instead. And thus the
- Amiga is deprived of a fun Internet app. D-oh! :(
-
- The Solution: (well, okay, it's *a* solution, anyway)
-
- AMarquee is a system that handles all of the icky information
- distribution details for you, allowing you to concentrate on
- coding your application, rather than on which data goes into
- which socket when. AMarquee consists of a shared library and
- a TCP daemon, which work together to get your data where it
- needs to be. Your program calls simple amarquee.library
- functions to broadcast your data, and waits on a provided
- MsgPort for data from other hosts. Easy!
-
-
- Features of amarquee.library (the shared library/API):
-
- - Programs written to use amarquee.library will work transparently
- with Inet225, AmiTCP, Miami, or any other TCP stack that is
- "AmiTCP compatible".
- - Has a simple API that requires no knowledge of multithreading
- techniques or socket programming to use.
- - Each AMarquee connection you make automatically and transparently
- starts a separate background execution thread, so your app will
- never have to block while data is sent or received.
- - An arbitrary number of AMarquee connections may be active at once.
- - Allows you to "subscribe" to data that interests you, so that
- when the data on the server is changed you will be automatically
- notified. You never need to poll for anything!
- - An easy mechanism for sending messages to one or many other
- AMarquee clients that are logged into the same server.
- - Standard Amiga wildcarding is supported in all applicable functions.
- This allows you to easily and succinctly refer to one host or data
- item, or many, as appropriate.
- - #includes for C, C++, and PCQ Pascal are included.
- - ARexx accessible. That is, ARexx scripts can use amarquee.library
- for communications using the same API that compiled C programs do.
- - Example programs in C, C++, Pascal, and ARexx are included.
- - Operation is almost totally asynchronous for efficiency, but
- several easy synchronization methods are available if you need them.
- - Can also be used for direct client-to-client connections and
- for making inetd-launched or manually-launched daemon programs.
- - Automatically detects when the computer on the other end of
- the AMarquee connection has crashed or been shut down, even
- on idle connections.
-
- Features of AMarqueed (the AmiTCP server):
-
- - Works with Inet225, AmiTCP, Miami, or any other TCP stack
- that is "AmiTCP compatible".
- - Fully multithreaded design, with one server process per connection.
- - Re-entrant code, to minimize memory usage.
- - Data is stored in a filesystem-like tree structure for simplicity,
- flexibility and efficiency. Each client gets its own "home directory"
- that it may write to or read from, and each client may also
- read from the "home directories" of other clients.
- - Efficient design minimizes CPU usage, net bandwidth, and execution time.
- - Limits may be put on memory usage, number of connections, and/or
- which clients or apps may connect. Only serve the hosts and apps
- you want to serve!
- - Supports data streaming to one or many clients at once.
- - Data streaming and synchronization features let you be sure your
- data was read by all interested hosts before you update it again.
- - Automatically detects and eliminates "dead" connections (e.g.
- if the client computer was shut down without quitting politely)
- - Server may be administered remotely by clients with "privileged"
- status.
-
- WHAT'S NEW IN VERSION 1.47:
-
- 1.47 : (Public Release 2/20/97) (amarquee.library v47)
- - Added a QGOF_NOTIFY flag to QGo().
- - Added the QDetachSession() and QReattachSession() functions to
- amarquee.library.
- - Added AMarqueeDebugMultiThreaded.c to the testPrograms
- directory, as a test/demonstration of the new functions.
- - Optimized the transport code somewhat, to cut down on the number
- of memory allocations, and the amount of memory used.
- - Added Session.h to the distribution. Session.h contains a C++
- "wrapper" class named Session, that represents a QSession in a nice
- object-oriented manner.
- - Added AMarqueeDebug.cpp to the Example Clients directory.
- * Added the link to the QErrorName documentation that was
- overlooked before in the API listing.
- * Fixed the parsing of arguments in the ARexx version of QGo().
-